/*****************************************************************************
 *   Copyright(C)2009-2020 by VSF Team                                       *
 *                                                                           *
 *  Licensed under the Apache License, Version 2.0 (the "License");          *
 *  you may not use this file except in compliance with the License.         *
 *  You may obtain a copy of the License at                                  *
 *                                                                           *
 *     http://www.apache.org/licenses/LICENSE-2.0                            *
 *                                                                           *
 *  Unless required by applicable law or agreed to in writing, software      *
 *  distributed under the License is distributed on an "AS IS" BASIS,        *
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
 *  See the License for the specific language governing permissions and      *
 *  limitations under the License.                                           *
 *                                                                           *
 ****************************************************************************/

/*****************************************************************************
 *   Copyright(C)2009-2020 by GorgonMeducer<embedded_zhuoran@hotmail.com>    *
 *                                                                           *
 *  Licensed under the Apache License, Version 2.0 (the "License");          *
 *  you may not use this file except in compliance with the License.         *
 *  You may obtain a copy of the License at                                  *
 *                                                                           *
 *     http://www.apache.org/licenses/LICENSE-2.0                            *
 *                                                                           *
 *  Unless required by applicable law or agreed to in writing, software      *
 *  distributed under the License is distributed on an "AS IS" BASIS,        *
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
 *  See the License for the specific language governing permissions and      *
 *  limitations under the License.                                           *
 *                                                                           *
 ****************************************************************************/

#ifndef __REPEAT_MACRO_H__
#define __REPEAT_MACRO_H__

#include "./vsf_connect.h"


#ifdef __cplusplus
extern "C" {
#endif

#define REPEAT_MACRO_LIMIT   256

#if (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L)

#define REPEAT_MACRO(__COUNT, __MACRO, __PARAM)     __CONNECT2(REPEAT_MACRO, __COUNT)(__MACRO, __PARAM)

#define REPEAT_MACRO0(  __MACRO, __PARAM)
#define REPEAT_MACRO1(  __MACRO, __PARAM)       REPEAT_MACRO0(  __MACRO, __PARAM)   __MACRO(  0, __PARAM)
#define REPEAT_MACRO2(  __MACRO, __PARAM)       REPEAT_MACRO1(  __MACRO, __PARAM)   __MACRO(  1, __PARAM)
#define REPEAT_MACRO3(  __MACRO, __PARAM)       REPEAT_MACRO2(  __MACRO, __PARAM)   __MACRO(  2, __PARAM)
#define REPEAT_MACRO4(  __MACRO, __PARAM)       REPEAT_MACRO3(  __MACRO, __PARAM)   __MACRO(  3, __PARAM)
#define REPEAT_MACRO5(  __MACRO, __PARAM)       REPEAT_MACRO4(  __MACRO, __PARAM)   __MACRO(  4, __PARAM)
#define REPEAT_MACRO6(  __MACRO, __PARAM)       REPEAT_MACRO5(  __MACRO, __PARAM)   __MACRO(  5, __PARAM)
#define REPEAT_MACRO7(  __MACRO, __PARAM)       REPEAT_MACRO6(  __MACRO, __PARAM)   __MACRO(  6, __PARAM)
#define REPEAT_MACRO8(  __MACRO, __PARAM)       REPEAT_MACRO7(  __MACRO, __PARAM)   __MACRO(  7, __PARAM)
#define REPEAT_MACRO9(  __MACRO, __PARAM)       REPEAT_MACRO8(  __MACRO, __PARAM)   __MACRO(  8, __PARAM)
#define REPEAT_MACRO10( __MACRO, __PARAM)       REPEAT_MACRO9(  __MACRO, __PARAM)   __MACRO(  9, __PARAM)
#define REPEAT_MACRO11( __MACRO, __PARAM)       REPEAT_MACRO10( __MACRO, __PARAM)   __MACRO( 10, __PARAM)
#define REPEAT_MACRO12( __MACRO, __PARAM)       REPEAT_MACRO11( __MACRO, __PARAM)   __MACRO( 11, __PARAM)
#define REPEAT_MACRO13( __MACRO, __PARAM)       REPEAT_MACRO12( __MACRO, __PARAM)   __MACRO( 12, __PARAM)
#define REPEAT_MACRO14( __MACRO, __PARAM)       REPEAT_MACRO13( __MACRO, __PARAM)   __MACRO( 13, __PARAM)
#define REPEAT_MACRO15( __MACRO, __PARAM)       REPEAT_MACRO14( __MACRO, __PARAM)   __MACRO( 14, __PARAM)
#define REPEAT_MACRO16( __MACRO, __PARAM)       REPEAT_MACRO15( __MACRO, __PARAM)   __MACRO( 15, __PARAM)
#define REPEAT_MACRO17( __MACRO, __PARAM)       REPEAT_MACRO16( __MACRO, __PARAM)   __MACRO( 16, __PARAM)
#define REPEAT_MACRO18( __MACRO, __PARAM)       REPEAT_MACRO17( __MACRO, __PARAM)   __MACRO( 17, __PARAM)
#define REPEAT_MACRO19( __MACRO, __PARAM)       REPEAT_MACRO18( __MACRO, __PARAM)   __MACRO( 18, __PARAM)
#define REPEAT_MACRO20( __MACRO, __PARAM)       REPEAT_MACRO19( __MACRO, __PARAM)   __MACRO( 19, __PARAM)
#define REPEAT_MACRO21( __MACRO, __PARAM)       REPEAT_MACRO20( __MACRO, __PARAM)   __MACRO( 20, __PARAM)
#define REPEAT_MACRO22( __MACRO, __PARAM)       REPEAT_MACRO21( __MACRO, __PARAM)   __MACRO( 21, __PARAM)
#define REPEAT_MACRO23( __MACRO, __PARAM)       REPEAT_MACRO22( __MACRO, __PARAM)   __MACRO( 22, __PARAM)
#define REPEAT_MACRO24( __MACRO, __PARAM)       REPEAT_MACRO23( __MACRO, __PARAM)   __MACRO( 23, __PARAM)
#define REPEAT_MACRO25( __MACRO, __PARAM)       REPEAT_MACRO24( __MACRO, __PARAM)   __MACRO( 24, __PARAM)
#define REPEAT_MACRO26( __MACRO, __PARAM)       REPEAT_MACRO25( __MACRO, __PARAM)   __MACRO( 25, __PARAM)
#define REPEAT_MACRO27( __MACRO, __PARAM)       REPEAT_MACRO26( __MACRO, __PARAM)   __MACRO( 26, __PARAM)
#define REPEAT_MACRO28( __MACRO, __PARAM)       REPEAT_MACRO27( __MACRO, __PARAM)   __MACRO( 27, __PARAM)
#define REPEAT_MACRO29( __MACRO, __PARAM)       REPEAT_MACRO28( __MACRO, __PARAM)   __MACRO( 28, __PARAM)
#define REPEAT_MACRO30( __MACRO, __PARAM)       REPEAT_MACRO29( __MACRO, __PARAM)   __MACRO( 29, __PARAM)
#define REPEAT_MACRO31( __MACRO, __PARAM)       REPEAT_MACRO30( __MACRO, __PARAM)   __MACRO( 30, __PARAM)
#define REPEAT_MACRO32( __MACRO, __PARAM)       REPEAT_MACRO31( __MACRO, __PARAM)   __MACRO( 31, __PARAM)
#define REPEAT_MACRO33( __MACRO, __PARAM)       REPEAT_MACRO32( __MACRO, __PARAM)   __MACRO( 32, __PARAM)
#define REPEAT_MACRO34( __MACRO, __PARAM)       REPEAT_MACRO33( __MACRO, __PARAM)   __MACRO( 33, __PARAM)
#define REPEAT_MACRO35( __MACRO, __PARAM)       REPEAT_MACRO34( __MACRO, __PARAM)   __MACRO( 34, __PARAM)
#define REPEAT_MACRO36( __MACRO, __PARAM)       REPEAT_MACRO35( __MACRO, __PARAM)   __MACRO( 35, __PARAM)
#define REPEAT_MACRO37( __MACRO, __PARAM)       REPEAT_MACRO36( __MACRO, __PARAM)   __MACRO( 36, __PARAM)
#define REPEAT_MACRO38( __MACRO, __PARAM)       REPEAT_MACRO37( __MACRO, __PARAM)   __MACRO( 37, __PARAM)
#define REPEAT_MACRO39( __MACRO, __PARAM)       REPEAT_MACRO38( __MACRO, __PARAM)   __MACRO( 38, __PARAM)
#define REPEAT_MACRO40( __MACRO, __PARAM)       REPEAT_MACRO39( __MACRO, __PARAM)   __MACRO( 39, __PARAM)
#define REPEAT_MACRO41( __MACRO, __PARAM)       REPEAT_MACRO40( __MACRO, __PARAM)   __MACRO( 40, __PARAM)
#define REPEAT_MACRO42( __MACRO, __PARAM)       REPEAT_MACRO41( __MACRO, __PARAM)   __MACRO( 41, __PARAM)
#define REPEAT_MACRO43( __MACRO, __PARAM)       REPEAT_MACRO42( __MACRO, __PARAM)   __MACRO( 42, __PARAM)
#define REPEAT_MACRO44( __MACRO, __PARAM)       REPEAT_MACRO43( __MACRO, __PARAM)   __MACRO( 43, __PARAM)
#define REPEAT_MACRO45( __MACRO, __PARAM)       REPEAT_MACRO44( __MACRO, __PARAM)   __MACRO( 44, __PARAM)
#define REPEAT_MACRO46( __MACRO, __PARAM)       REPEAT_MACRO45( __MACRO, __PARAM)   __MACRO( 45, __PARAM)
#define REPEAT_MACRO47( __MACRO, __PARAM)       REPEAT_MACRO46( __MACRO, __PARAM)   __MACRO( 46, __PARAM)
#define REPEAT_MACRO48( __MACRO, __PARAM)       REPEAT_MACRO47( __MACRO, __PARAM)   __MACRO( 47, __PARAM)
#define REPEAT_MACRO49( __MACRO, __PARAM)       REPEAT_MACRO48( __MACRO, __PARAM)   __MACRO( 48, __PARAM)
#define REPEAT_MACRO50( __MACRO, __PARAM)       REPEAT_MACRO49( __MACRO, __PARAM)   __MACRO( 49, __PARAM)
#define REPEAT_MACRO51( __MACRO, __PARAM)       REPEAT_MACRO50( __MACRO, __PARAM)   __MACRO( 50, __PARAM)
#define REPEAT_MACRO52( __MACRO, __PARAM)       REPEAT_MACRO51( __MACRO, __PARAM)   __MACRO( 51, __PARAM)
#define REPEAT_MACRO53( __MACRO, __PARAM)       REPEAT_MACRO52( __MACRO, __PARAM)   __MACRO( 52, __PARAM)
#define REPEAT_MACRO54( __MACRO, __PARAM)       REPEAT_MACRO53( __MACRO, __PARAM)   __MACRO( 53, __PARAM)
#define REPEAT_MACRO55( __MACRO, __PARAM)       REPEAT_MACRO54( __MACRO, __PARAM)   __MACRO( 54, __PARAM)
#define REPEAT_MACRO56( __MACRO, __PARAM)       REPEAT_MACRO55( __MACRO, __PARAM)   __MACRO( 55, __PARAM)
#define REPEAT_MACRO57( __MACRO, __PARAM)       REPEAT_MACRO56( __MACRO, __PARAM)   __MACRO( 56, __PARAM)
#define REPEAT_MACRO58( __MACRO, __PARAM)       REPEAT_MACRO57( __MACRO, __PARAM)   __MACRO( 57, __PARAM)
#define REPEAT_MACRO59( __MACRO, __PARAM)       REPEAT_MACRO58( __MACRO, __PARAM)   __MACRO( 58, __PARAM)
#define REPEAT_MACRO60( __MACRO, __PARAM)       REPEAT_MACRO59( __MACRO, __PARAM)   __MACRO( 59, __PARAM)
#define REPEAT_MACRO61( __MACRO, __PARAM)       REPEAT_MACRO60( __MACRO, __PARAM)   __MACRO( 60, __PARAM)
#define REPEAT_MACRO62( __MACRO, __PARAM)       REPEAT_MACRO61( __MACRO, __PARAM)   __MACRO( 61, __PARAM)
#define REPEAT_MACRO63( __MACRO, __PARAM)       REPEAT_MACRO62( __MACRO, __PARAM)   __MACRO( 62, __PARAM)
#define REPEAT_MACRO64( __MACRO, __PARAM)       REPEAT_MACRO63( __MACRO, __PARAM)   __MACRO( 63, __PARAM)
#define REPEAT_MACRO65( __MACRO, __PARAM)       REPEAT_MACRO64( __MACRO, __PARAM)   __MACRO( 64, __PARAM)
#define REPEAT_MACRO66( __MACRO, __PARAM)       REPEAT_MACRO65( __MACRO, __PARAM)   __MACRO( 65, __PARAM)
#define REPEAT_MACRO67( __MACRO, __PARAM)       REPEAT_MACRO66( __MACRO, __PARAM)   __MACRO( 66, __PARAM)
#define REPEAT_MACRO68( __MACRO, __PARAM)       REPEAT_MACRO67( __MACRO, __PARAM)   __MACRO( 67, __PARAM)
#define REPEAT_MACRO69( __MACRO, __PARAM)       REPEAT_MACRO68( __MACRO, __PARAM)   __MACRO( 68, __PARAM)
#define REPEAT_MACRO70( __MACRO, __PARAM)       REPEAT_MACRO69( __MACRO, __PARAM)   __MACRO( 69, __PARAM)
#define REPEAT_MACRO71( __MACRO, __PARAM)       REPEAT_MACRO70( __MACRO, __PARAM)   __MACRO( 70, __PARAM)
#define REPEAT_MACRO72( __MACRO, __PARAM)       REPEAT_MACRO71( __MACRO, __PARAM)   __MACRO( 71, __PARAM)
#define REPEAT_MACRO73( __MACRO, __PARAM)       REPEAT_MACRO72( __MACRO, __PARAM)   __MACRO( 72, __PARAM)
#define REPEAT_MACRO74( __MACRO, __PARAM)       REPEAT_MACRO73( __MACRO, __PARAM)   __MACRO( 73, __PARAM)
#define REPEAT_MACRO75( __MACRO, __PARAM)       REPEAT_MACRO74( __MACRO, __PARAM)   __MACRO( 74, __PARAM)
#define REPEAT_MACRO76( __MACRO, __PARAM)       REPEAT_MACRO75( __MACRO, __PARAM)   __MACRO( 75, __PARAM)
#define REPEAT_MACRO77( __MACRO, __PARAM)       REPEAT_MACRO76( __MACRO, __PARAM)   __MACRO( 76, __PARAM)
#define REPEAT_MACRO78( __MACRO, __PARAM)       REPEAT_MACRO77( __MACRO, __PARAM)   __MACRO( 77, __PARAM)
#define REPEAT_MACRO79( __MACRO, __PARAM)       REPEAT_MACRO78( __MACRO, __PARAM)   __MACRO( 78, __PARAM)
#define REPEAT_MACRO80( __MACRO, __PARAM)       REPEAT_MACRO79( __MACRO, __PARAM)   __MACRO( 79, __PARAM)
#define REPEAT_MACRO81( __MACRO, __PARAM)       REPEAT_MACRO80( __MACRO, __PARAM)   __MACRO( 80, __PARAM)
#define REPEAT_MACRO82( __MACRO, __PARAM)       REPEAT_MACRO81( __MACRO, __PARAM)   __MACRO( 81, __PARAM)
#define REPEAT_MACRO83( __MACRO, __PARAM)       REPEAT_MACRO82( __MACRO, __PARAM)   __MACRO( 82, __PARAM)
#define REPEAT_MACRO84( __MACRO, __PARAM)       REPEAT_MACRO83( __MACRO, __PARAM)   __MACRO( 83, __PARAM)
#define REPEAT_MACRO85( __MACRO, __PARAM)       REPEAT_MACRO84( __MACRO, __PARAM)   __MACRO( 84, __PARAM)
#define REPEAT_MACRO86( __MACRO, __PARAM)       REPEAT_MACRO85( __MACRO, __PARAM)   __MACRO( 85, __PARAM)
#define REPEAT_MACRO87( __MACRO, __PARAM)       REPEAT_MACRO86( __MACRO, __PARAM)   __MACRO( 86, __PARAM)
#define REPEAT_MACRO88( __MACRO, __PARAM)       REPEAT_MACRO87( __MACRO, __PARAM)   __MACRO( 87, __PARAM)
#define REPEAT_MACRO89( __MACRO, __PARAM)       REPEAT_MACRO88( __MACRO, __PARAM)   __MACRO( 88, __PARAM)
#define REPEAT_MACRO90( __MACRO, __PARAM)       REPEAT_MACRO89( __MACRO, __PARAM)   __MACRO( 89, __PARAM)
#define REPEAT_MACRO91( __MACRO, __PARAM)       REPEAT_MACRO90( __MACRO, __PARAM)   __MACRO( 90, __PARAM)
#define REPEAT_MACRO92( __MACRO, __PARAM)       REPEAT_MACRO91( __MACRO, __PARAM)   __MACRO( 91, __PARAM)
#define REPEAT_MACRO93( __MACRO, __PARAM)       REPEAT_MACRO92( __MACRO, __PARAM)   __MACRO( 92, __PARAM)
#define REPEAT_MACRO94( __MACRO, __PARAM)       REPEAT_MACRO93( __MACRO, __PARAM)   __MACRO( 93, __PARAM)
#define REPEAT_MACRO95( __MACRO, __PARAM)       REPEAT_MACRO94( __MACRO, __PARAM)   __MACRO( 94, __PARAM)
#define REPEAT_MACRO96( __MACRO, __PARAM)       REPEAT_MACRO95( __MACRO, __PARAM)   __MACRO( 95, __PARAM)
#define REPEAT_MACRO97( __MACRO, __PARAM)       REPEAT_MACRO96( __MACRO, __PARAM)   __MACRO( 96, __PARAM)
#define REPEAT_MACRO98( __MACRO, __PARAM)       REPEAT_MACRO97( __MACRO, __PARAM)   __MACRO( 97, __PARAM)
#define REPEAT_MACRO99( __MACRO, __PARAM)       REPEAT_MACRO98( __MACRO, __PARAM)   __MACRO( 98, __PARAM)
#define REPEAT_MACRO100(__MACRO, __PARAM)       REPEAT_MACRO99( __MACRO, __PARAM)   __MACRO( 99, __PARAM)
#define REPEAT_MACRO101(__MACRO, __PARAM)       REPEAT_MACRO100(__MACRO, __PARAM)   __MACRO(100, __PARAM)
#define REPEAT_MACRO102(__MACRO, __PARAM)       REPEAT_MACRO101(__MACRO, __PARAM)   __MACRO(101, __PARAM)
#define REPEAT_MACRO103(__MACRO, __PARAM)       REPEAT_MACRO102(__MACRO, __PARAM)   __MACRO(102, __PARAM)
#define REPEAT_MACRO104(__MACRO, __PARAM)       REPEAT_MACRO103(__MACRO, __PARAM)   __MACRO(103, __PARAM)
#define REPEAT_MACRO105(__MACRO, __PARAM)       REPEAT_MACRO104(__MACRO, __PARAM)   __MACRO(104, __PARAM)
#define REPEAT_MACRO106(__MACRO, __PARAM)       REPEAT_MACRO105(__MACRO, __PARAM)   __MACRO(105, __PARAM)
#define REPEAT_MACRO107(__MACRO, __PARAM)       REPEAT_MACRO106(__MACRO, __PARAM)   __MACRO(106, __PARAM)
#define REPEAT_MACRO108(__MACRO, __PARAM)       REPEAT_MACRO107(__MACRO, __PARAM)   __MACRO(107, __PARAM)
#define REPEAT_MACRO109(__MACRO, __PARAM)       REPEAT_MACRO108(__MACRO, __PARAM)   __MACRO(108, __PARAM)
#define REPEAT_MACRO110(__MACRO, __PARAM)       REPEAT_MACRO109(__MACRO, __PARAM)   __MACRO(109, __PARAM)
#define REPEAT_MACRO111(__MACRO, __PARAM)       REPEAT_MACRO110(__MACRO, __PARAM)   __MACRO(110, __PARAM)
#define REPEAT_MACRO112(__MACRO, __PARAM)       REPEAT_MACRO111(__MACRO, __PARAM)   __MACRO(111, __PARAM)
#define REPEAT_MACRO113(__MACRO, __PARAM)       REPEAT_MACRO112(__MACRO, __PARAM)   __MACRO(112, __PARAM)
#define REPEAT_MACRO114(__MACRO, __PARAM)       REPEAT_MACRO113(__MACRO, __PARAM)   __MACRO(113, __PARAM)
#define REPEAT_MACRO115(__MACRO, __PARAM)       REPEAT_MACRO114(__MACRO, __PARAM)   __MACRO(114, __PARAM)
#define REPEAT_MACRO116(__MACRO, __PARAM)       REPEAT_MACRO115(__MACRO, __PARAM)   __MACRO(115, __PARAM)
#define REPEAT_MACRO117(__MACRO, __PARAM)       REPEAT_MACRO116(__MACRO, __PARAM)   __MACRO(116, __PARAM)
#define REPEAT_MACRO118(__MACRO, __PARAM)       REPEAT_MACRO117(__MACRO, __PARAM)   __MACRO(117, __PARAM)
#define REPEAT_MACRO119(__MACRO, __PARAM)       REPEAT_MACRO118(__MACRO, __PARAM)   __MACRO(118, __PARAM)
#define REPEAT_MACRO120(__MACRO, __PARAM)       REPEAT_MACRO119(__MACRO, __PARAM)   __MACRO(119, __PARAM)
#define REPEAT_MACRO121(__MACRO, __PARAM)       REPEAT_MACRO120(__MACRO, __PARAM)   __MACRO(120, __PARAM)
#define REPEAT_MACRO122(__MACRO, __PARAM)       REPEAT_MACRO121(__MACRO, __PARAM)   __MACRO(121, __PARAM)
#define REPEAT_MACRO123(__MACRO, __PARAM)       REPEAT_MACRO122(__MACRO, __PARAM)   __MACRO(122, __PARAM)
#define REPEAT_MACRO124(__MACRO, __PARAM)       REPEAT_MACRO123(__MACRO, __PARAM)   __MACRO(123, __PARAM)
#define REPEAT_MACRO125(__MACRO, __PARAM)       REPEAT_MACRO124(__MACRO, __PARAM)   __MACRO(124, __PARAM)
#define REPEAT_MACRO126(__MACRO, __PARAM)       REPEAT_MACRO125(__MACRO, __PARAM)   __MACRO(125, __PARAM)
#define REPEAT_MACRO127(__MACRO, __PARAM)       REPEAT_MACRO126(__MACRO, __PARAM)   __MACRO(126, __PARAM)
#define REPEAT_MACRO128(__MACRO, __PARAM)       REPEAT_MACRO127(__MACRO, __PARAM)   __MACRO(127, __PARAM)
#define REPEAT_MACRO129(__MACRO, __PARAM)       REPEAT_MACRO128(__MACRO, __PARAM)   __MACRO(128, __PARAM)
#define REPEAT_MACRO130(__MACRO, __PARAM)       REPEAT_MACRO129(__MACRO, __PARAM)   __MACRO(129, __PARAM)
#define REPEAT_MACRO131(__MACRO, __PARAM)       REPEAT_MACRO130(__MACRO, __PARAM)   __MACRO(130, __PARAM)
#define REPEAT_MACRO132(__MACRO, __PARAM)       REPEAT_MACRO131(__MACRO, __PARAM)   __MACRO(131, __PARAM)
#define REPEAT_MACRO133(__MACRO, __PARAM)       REPEAT_MACRO132(__MACRO, __PARAM)   __MACRO(132, __PARAM)
#define REPEAT_MACRO134(__MACRO, __PARAM)       REPEAT_MACRO133(__MACRO, __PARAM)   __MACRO(133, __PARAM)
#define REPEAT_MACRO135(__MACRO, __PARAM)       REPEAT_MACRO134(__MACRO, __PARAM)   __MACRO(134, __PARAM)
#define REPEAT_MACRO136(__MACRO, __PARAM)       REPEAT_MACRO135(__MACRO, __PARAM)   __MACRO(135, __PARAM)
#define REPEAT_MACRO137(__MACRO, __PARAM)       REPEAT_MACRO136(__MACRO, __PARAM)   __MACRO(136, __PARAM)
#define REPEAT_MACRO138(__MACRO, __PARAM)       REPEAT_MACRO137(__MACRO, __PARAM)   __MACRO(137, __PARAM)
#define REPEAT_MACRO139(__MACRO, __PARAM)       REPEAT_MACRO138(__MACRO, __PARAM)   __MACRO(138, __PARAM)
#define REPEAT_MACRO140(__MACRO, __PARAM)       REPEAT_MACRO139(__MACRO, __PARAM)   __MACRO(139, __PARAM)
#define REPEAT_MACRO141(__MACRO, __PARAM)       REPEAT_MACRO140(__MACRO, __PARAM)   __MACRO(140, __PARAM)
#define REPEAT_MACRO142(__MACRO, __PARAM)       REPEAT_MACRO141(__MACRO, __PARAM)   __MACRO(141, __PARAM)
#define REPEAT_MACRO143(__MACRO, __PARAM)       REPEAT_MACRO142(__MACRO, __PARAM)   __MACRO(142, __PARAM)
#define REPEAT_MACRO144(__MACRO, __PARAM)       REPEAT_MACRO143(__MACRO, __PARAM)   __MACRO(143, __PARAM)
#define REPEAT_MACRO145(__MACRO, __PARAM)       REPEAT_MACRO144(__MACRO, __PARAM)   __MACRO(144, __PARAM)
#define REPEAT_MACRO146(__MACRO, __PARAM)       REPEAT_MACRO145(__MACRO, __PARAM)   __MACRO(145, __PARAM)
#define REPEAT_MACRO147(__MACRO, __PARAM)       REPEAT_MACRO146(__MACRO, __PARAM)   __MACRO(146, __PARAM)
#define REPEAT_MACRO148(__MACRO, __PARAM)       REPEAT_MACRO147(__MACRO, __PARAM)   __MACRO(147, __PARAM)
#define REPEAT_MACRO149(__MACRO, __PARAM)       REPEAT_MACRO148(__MACRO, __PARAM)   __MACRO(148, __PARAM)
#define REPEAT_MACRO150(__MACRO, __PARAM)       REPEAT_MACRO149(__MACRO, __PARAM)   __MACRO(149, __PARAM)
#define REPEAT_MACRO151(__MACRO, __PARAM)       REPEAT_MACRO150(__MACRO, __PARAM)   __MACRO(150, __PARAM)
#define REPEAT_MACRO152(__MACRO, __PARAM)       REPEAT_MACRO151(__MACRO, __PARAM)   __MACRO(151, __PARAM)
#define REPEAT_MACRO153(__MACRO, __PARAM)       REPEAT_MACRO152(__MACRO, __PARAM)   __MACRO(152, __PARAM)
#define REPEAT_MACRO154(__MACRO, __PARAM)       REPEAT_MACRO153(__MACRO, __PARAM)   __MACRO(153, __PARAM)
#define REPEAT_MACRO155(__MACRO, __PARAM)       REPEAT_MACRO154(__MACRO, __PARAM)   __MACRO(154, __PARAM)
#define REPEAT_MACRO156(__MACRO, __PARAM)       REPEAT_MACRO155(__MACRO, __PARAM)   __MACRO(155, __PARAM)
#define REPEAT_MACRO157(__MACRO, __PARAM)       REPEAT_MACRO156(__MACRO, __PARAM)   __MACRO(156, __PARAM)
#define REPEAT_MACRO158(__MACRO, __PARAM)       REPEAT_MACRO157(__MACRO, __PARAM)   __MACRO(157, __PARAM)
#define REPEAT_MACRO159(__MACRO, __PARAM)       REPEAT_MACRO158(__MACRO, __PARAM)   __MACRO(158, __PARAM)
#define REPEAT_MACRO160(__MACRO, __PARAM)       REPEAT_MACRO159(__MACRO, __PARAM)   __MACRO(159, __PARAM)
#define REPEAT_MACRO161(__MACRO, __PARAM)       REPEAT_MACRO160(__MACRO, __PARAM)   __MACRO(160, __PARAM)
#define REPEAT_MACRO162(__MACRO, __PARAM)       REPEAT_MACRO161(__MACRO, __PARAM)   __MACRO(161, __PARAM)
#define REPEAT_MACRO163(__MACRO, __PARAM)       REPEAT_MACRO162(__MACRO, __PARAM)   __MACRO(162, __PARAM)
#define REPEAT_MACRO164(__MACRO, __PARAM)       REPEAT_MACRO163(__MACRO, __PARAM)   __MACRO(163, __PARAM)
#define REPEAT_MACRO165(__MACRO, __PARAM)       REPEAT_MACRO164(__MACRO, __PARAM)   __MACRO(164, __PARAM)
#define REPEAT_MACRO166(__MACRO, __PARAM)       REPEAT_MACRO165(__MACRO, __PARAM)   __MACRO(165, __PARAM)
#define REPEAT_MACRO167(__MACRO, __PARAM)       REPEAT_MACRO166(__MACRO, __PARAM)   __MACRO(166, __PARAM)
#define REPEAT_MACRO168(__MACRO, __PARAM)       REPEAT_MACRO167(__MACRO, __PARAM)   __MACRO(167, __PARAM)
#define REPEAT_MACRO169(__MACRO, __PARAM)       REPEAT_MACRO168(__MACRO, __PARAM)   __MACRO(168, __PARAM)
#define REPEAT_MACRO170(__MACRO, __PARAM)       REPEAT_MACRO169(__MACRO, __PARAM)   __MACRO(169, __PARAM)
#define REPEAT_MACRO171(__MACRO, __PARAM)       REPEAT_MACRO170(__MACRO, __PARAM)   __MACRO(170, __PARAM)
#define REPEAT_MACRO172(__MACRO, __PARAM)       REPEAT_MACRO171(__MACRO, __PARAM)   __MACRO(171, __PARAM)
#define REPEAT_MACRO173(__MACRO, __PARAM)       REPEAT_MACRO172(__MACRO, __PARAM)   __MACRO(172, __PARAM)
#define REPEAT_MACRO174(__MACRO, __PARAM)       REPEAT_MACRO173(__MACRO, __PARAM)   __MACRO(173, __PARAM)
#define REPEAT_MACRO175(__MACRO, __PARAM)       REPEAT_MACRO174(__MACRO, __PARAM)   __MACRO(174, __PARAM)
#define REPEAT_MACRO176(__MACRO, __PARAM)       REPEAT_MACRO175(__MACRO, __PARAM)   __MACRO(175, __PARAM)
#define REPEAT_MACRO177(__MACRO, __PARAM)       REPEAT_MACRO176(__MACRO, __PARAM)   __MACRO(176, __PARAM)
#define REPEAT_MACRO178(__MACRO, __PARAM)       REPEAT_MACRO177(__MACRO, __PARAM)   __MACRO(177, __PARAM)
#define REPEAT_MACRO179(__MACRO, __PARAM)       REPEAT_MACRO178(__MACRO, __PARAM)   __MACRO(178, __PARAM)
#define REPEAT_MACRO180(__MACRO, __PARAM)       REPEAT_MACRO179(__MACRO, __PARAM)   __MACRO(179, __PARAM)
#define REPEAT_MACRO181(__MACRO, __PARAM)       REPEAT_MACRO180(__MACRO, __PARAM)   __MACRO(180, __PARAM)
#define REPEAT_MACRO182(__MACRO, __PARAM)       REPEAT_MACRO181(__MACRO, __PARAM)   __MACRO(181, __PARAM)
#define REPEAT_MACRO183(__MACRO, __PARAM)       REPEAT_MACRO182(__MACRO, __PARAM)   __MACRO(182, __PARAM)
#define REPEAT_MACRO184(__MACRO, __PARAM)       REPEAT_MACRO183(__MACRO, __PARAM)   __MACRO(183, __PARAM)
#define REPEAT_MACRO185(__MACRO, __PARAM)       REPEAT_MACRO184(__MACRO, __PARAM)   __MACRO(184, __PARAM)
#define REPEAT_MACRO186(__MACRO, __PARAM)       REPEAT_MACRO185(__MACRO, __PARAM)   __MACRO(185, __PARAM)
#define REPEAT_MACRO187(__MACRO, __PARAM)       REPEAT_MACRO186(__MACRO, __PARAM)   __MACRO(186, __PARAM)
#define REPEAT_MACRO188(__MACRO, __PARAM)       REPEAT_MACRO187(__MACRO, __PARAM)   __MACRO(187, __PARAM)
#define REPEAT_MACRO189(__MACRO, __PARAM)       REPEAT_MACRO188(__MACRO, __PARAM)   __MACRO(188, __PARAM)
#define REPEAT_MACRO190(__MACRO, __PARAM)       REPEAT_MACRO189(__MACRO, __PARAM)   __MACRO(189, __PARAM)
#define REPEAT_MACRO191(__MACRO, __PARAM)       REPEAT_MACRO190(__MACRO, __PARAM)   __MACRO(190, __PARAM)
#define REPEAT_MACRO192(__MACRO, __PARAM)       REPEAT_MACRO191(__MACRO, __PARAM)   __MACRO(191, __PARAM)
#define REPEAT_MACRO193(__MACRO, __PARAM)       REPEAT_MACRO192(__MACRO, __PARAM)   __MACRO(192, __PARAM)
#define REPEAT_MACRO194(__MACRO, __PARAM)       REPEAT_MACRO193(__MACRO, __PARAM)   __MACRO(193, __PARAM)
#define REPEAT_MACRO195(__MACRO, __PARAM)       REPEAT_MACRO194(__MACRO, __PARAM)   __MACRO(194, __PARAM)
#define REPEAT_MACRO196(__MACRO, __PARAM)       REPEAT_MACRO195(__MACRO, __PARAM)   __MACRO(195, __PARAM)
#define REPEAT_MACRO197(__MACRO, __PARAM)       REPEAT_MACRO196(__MACRO, __PARAM)   __MACRO(196, __PARAM)
#define REPEAT_MACRO198(__MACRO, __PARAM)       REPEAT_MACRO197(__MACRO, __PARAM)   __MACRO(197, __PARAM)
#define REPEAT_MACRO199(__MACRO, __PARAM)       REPEAT_MACRO198(__MACRO, __PARAM)   __MACRO(198, __PARAM)
#define REPEAT_MACRO200(__MACRO, __PARAM)       REPEAT_MACRO199(__MACRO, __PARAM)   __MACRO(199, __PARAM)
#define REPEAT_MACRO201(__MACRO, __PARAM)       REPEAT_MACRO200(__MACRO, __PARAM)   __MACRO(200, __PARAM)
#define REPEAT_MACRO202(__MACRO, __PARAM)       REPEAT_MACRO201(__MACRO, __PARAM)   __MACRO(201, __PARAM)
#define REPEAT_MACRO203(__MACRO, __PARAM)       REPEAT_MACRO202(__MACRO, __PARAM)   __MACRO(202, __PARAM)
#define REPEAT_MACRO204(__MACRO, __PARAM)       REPEAT_MACRO203(__MACRO, __PARAM)   __MACRO(203, __PARAM)
#define REPEAT_MACRO205(__MACRO, __PARAM)       REPEAT_MACRO204(__MACRO, __PARAM)   __MACRO(204, __PARAM)
#define REPEAT_MACRO206(__MACRO, __PARAM)       REPEAT_MACRO205(__MACRO, __PARAM)   __MACRO(205, __PARAM)
#define REPEAT_MACRO207(__MACRO, __PARAM)       REPEAT_MACRO206(__MACRO, __PARAM)   __MACRO(206, __PARAM)
#define REPEAT_MACRO208(__MACRO, __PARAM)       REPEAT_MACRO207(__MACRO, __PARAM)   __MACRO(207, __PARAM)
#define REPEAT_MACRO209(__MACRO, __PARAM)       REPEAT_MACRO208(__MACRO, __PARAM)   __MACRO(208, __PARAM)
#define REPEAT_MACRO210(__MACRO, __PARAM)       REPEAT_MACRO209(__MACRO, __PARAM)   __MACRO(209, __PARAM)
#define REPEAT_MACRO211(__MACRO, __PARAM)       REPEAT_MACRO210(__MACRO, __PARAM)   __MACRO(210, __PARAM)
#define REPEAT_MACRO212(__MACRO, __PARAM)       REPEAT_MACRO211(__MACRO, __PARAM)   __MACRO(211, __PARAM)
#define REPEAT_MACRO213(__MACRO, __PARAM)       REPEAT_MACRO212(__MACRO, __PARAM)   __MACRO(212, __PARAM)
#define REPEAT_MACRO214(__MACRO, __PARAM)       REPEAT_MACRO213(__MACRO, __PARAM)   __MACRO(213, __PARAM)
#define REPEAT_MACRO215(__MACRO, __PARAM)       REPEAT_MACRO214(__MACRO, __PARAM)   __MACRO(214, __PARAM)
#define REPEAT_MACRO216(__MACRO, __PARAM)       REPEAT_MACRO215(__MACRO, __PARAM)   __MACRO(215, __PARAM)
#define REPEAT_MACRO217(__MACRO, __PARAM)       REPEAT_MACRO216(__MACRO, __PARAM)   __MACRO(216, __PARAM)
#define REPEAT_MACRO218(__MACRO, __PARAM)       REPEAT_MACRO217(__MACRO, __PARAM)   __MACRO(217, __PARAM)
#define REPEAT_MACRO219(__MACRO, __PARAM)       REPEAT_MACRO218(__MACRO, __PARAM)   __MACRO(218, __PARAM)
#define REPEAT_MACRO220(__MACRO, __PARAM)       REPEAT_MACRO219(__MACRO, __PARAM)   __MACRO(219, __PARAM)
#define REPEAT_MACRO221(__MACRO, __PARAM)       REPEAT_MACRO220(__MACRO, __PARAM)   __MACRO(220, __PARAM)
#define REPEAT_MACRO222(__MACRO, __PARAM)       REPEAT_MACRO221(__MACRO, __PARAM)   __MACRO(221, __PARAM)
#define REPEAT_MACRO223(__MACRO, __PARAM)       REPEAT_MACRO222(__MACRO, __PARAM)   __MACRO(222, __PARAM)
#define REPEAT_MACRO224(__MACRO, __PARAM)       REPEAT_MACRO223(__MACRO, __PARAM)   __MACRO(223, __PARAM)
#define REPEAT_MACRO225(__MACRO, __PARAM)       REPEAT_MACRO224(__MACRO, __PARAM)   __MACRO(224, __PARAM)
#define REPEAT_MACRO226(__MACRO, __PARAM)       REPEAT_MACRO225(__MACRO, __PARAM)   __MACRO(225, __PARAM)
#define REPEAT_MACRO227(__MACRO, __PARAM)       REPEAT_MACRO226(__MACRO, __PARAM)   __MACRO(226, __PARAM)
#define REPEAT_MACRO228(__MACRO, __PARAM)       REPEAT_MACRO227(__MACRO, __PARAM)   __MACRO(227, __PARAM)
#define REPEAT_MACRO229(__MACRO, __PARAM)       REPEAT_MACRO228(__MACRO, __PARAM)   __MACRO(228, __PARAM)
#define REPEAT_MACRO230(__MACRO, __PARAM)       REPEAT_MACRO229(__MACRO, __PARAM)   __MACRO(229, __PARAM)
#define REPEAT_MACRO231(__MACRO, __PARAM)       REPEAT_MACRO230(__MACRO, __PARAM)   __MACRO(230, __PARAM)
#define REPEAT_MACRO232(__MACRO, __PARAM)       REPEAT_MACRO231(__MACRO, __PARAM)   __MACRO(231, __PARAM)
#define REPEAT_MACRO233(__MACRO, __PARAM)       REPEAT_MACRO232(__MACRO, __PARAM)   __MACRO(232, __PARAM)
#define REPEAT_MACRO234(__MACRO, __PARAM)       REPEAT_MACRO233(__MACRO, __PARAM)   __MACRO(233, __PARAM)
#define REPEAT_MACRO235(__MACRO, __PARAM)       REPEAT_MACRO234(__MACRO, __PARAM)   __MACRO(234, __PARAM)
#define REPEAT_MACRO236(__MACRO, __PARAM)       REPEAT_MACRO235(__MACRO, __PARAM)   __MACRO(235, __PARAM)
#define REPEAT_MACRO237(__MACRO, __PARAM)       REPEAT_MACRO236(__MACRO, __PARAM)   __MACRO(236, __PARAM)
#define REPEAT_MACRO238(__MACRO, __PARAM)       REPEAT_MACRO237(__MACRO, __PARAM)   __MACRO(237, __PARAM)
#define REPEAT_MACRO239(__MACRO, __PARAM)       REPEAT_MACRO238(__MACRO, __PARAM)   __MACRO(238, __PARAM)
#define REPEAT_MACRO240(__MACRO, __PARAM)       REPEAT_MACRO239(__MACRO, __PARAM)   __MACRO(239, __PARAM)
#define REPEAT_MACRO241(__MACRO, __PARAM)       REPEAT_MACRO240(__MACRO, __PARAM)   __MACRO(240, __PARAM)
#define REPEAT_MACRO242(__MACRO, __PARAM)       REPEAT_MACRO241(__MACRO, __PARAM)   __MACRO(241, __PARAM)
#define REPEAT_MACRO243(__MACRO, __PARAM)       REPEAT_MACRO242(__MACRO, __PARAM)   __MACRO(242, __PARAM)
#define REPEAT_MACRO244(__MACRO, __PARAM)       REPEAT_MACRO243(__MACRO, __PARAM)   __MACRO(243, __PARAM)
#define REPEAT_MACRO245(__MACRO, __PARAM)       REPEAT_MACRO244(__MACRO, __PARAM)   __MACRO(244, __PARAM)
#define REPEAT_MACRO246(__MACRO, __PARAM)       REPEAT_MACRO245(__MACRO, __PARAM)   __MACRO(245, __PARAM)
#define REPEAT_MACRO247(__MACRO, __PARAM)       REPEAT_MACRO246(__MACRO, __PARAM)   __MACRO(246, __PARAM)
#define REPEAT_MACRO248(__MACRO, __PARAM)       REPEAT_MACRO247(__MACRO, __PARAM)   __MACRO(247, __PARAM)
#define REPEAT_MACRO249(__MACRO, __PARAM)       REPEAT_MACRO248(__MACRO, __PARAM)   __MACRO(248, __PARAM)
#define REPEAT_MACRO250(__MACRO, __PARAM)       REPEAT_MACRO249(__MACRO, __PARAM)   __MACRO(249, __PARAM)
#define REPEAT_MACRO251(__MACRO, __PARAM)       REPEAT_MACRO250(__MACRO, __PARAM)   __MACRO(250, __PARAM)
#define REPEAT_MACRO252(__MACRO, __PARAM)       REPEAT_MACRO251(__MACRO, __PARAM)   __MACRO(251, __PARAM)
#define REPEAT_MACRO253(__MACRO, __PARAM)       REPEAT_MACRO252(__MACRO, __PARAM)   __MACRO(252, __PARAM)
#define REPEAT_MACRO254(__MACRO, __PARAM)       REPEAT_MACRO253(__MACRO, __PARAM)   __MACRO(253, __PARAM)
#define REPEAT_MACRO255(__MACRO, __PARAM)       REPEAT_MACRO254(__MACRO, __PARAM)   __MACRO(254, __PARAM)
#define REPEAT_MACRO256(__MACRO, __PARAM)       REPEAT_MACRO255(__MACRO, __PARAM)   __MACRO(255, __PARAM)

#else

#define REPEAT_MACRO(__COUNT, __MACRO, ...)     __CONNECT2(REPEAT_MACRO, __COUNT)(__MACRO, ##__VA_ARGS__)

#define REPEAT_MACRO0(  __MACRO, ...)
#define REPEAT_MACRO1(  __MACRO, ...)       REPEAT_MACRO0(  __MACRO, ##__VA_ARGS__)   __MACRO(  0, ##__VA_ARGS__)
#define REPEAT_MACRO2(  __MACRO, ...)       REPEAT_MACRO1(  __MACRO, ##__VA_ARGS__)   __MACRO(  1, ##__VA_ARGS__)
#define REPEAT_MACRO3(  __MACRO, ...)       REPEAT_MACRO2(  __MACRO, ##__VA_ARGS__)   __MACRO(  2, ##__VA_ARGS__)
#define REPEAT_MACRO4(  __MACRO, ...)       REPEAT_MACRO3(  __MACRO, ##__VA_ARGS__)   __MACRO(  3, ##__VA_ARGS__)
#define REPEAT_MACRO5(  __MACRO, ...)       REPEAT_MACRO4(  __MACRO, ##__VA_ARGS__)   __MACRO(  4, ##__VA_ARGS__)
#define REPEAT_MACRO6(  __MACRO, ...)       REPEAT_MACRO5(  __MACRO, ##__VA_ARGS__)   __MACRO(  5, ##__VA_ARGS__)
#define REPEAT_MACRO7(  __MACRO, ...)       REPEAT_MACRO6(  __MACRO, ##__VA_ARGS__)   __MACRO(  6, ##__VA_ARGS__)
#define REPEAT_MACRO8(  __MACRO, ...)       REPEAT_MACRO7(  __MACRO, ##__VA_ARGS__)   __MACRO(  7, ##__VA_ARGS__)
#define REPEAT_MACRO9(  __MACRO, ...)       REPEAT_MACRO8(  __MACRO, ##__VA_ARGS__)   __MACRO(  8, ##__VA_ARGS__)
#define REPEAT_MACRO10( __MACRO, ...)       REPEAT_MACRO9(  __MACRO, ##__VA_ARGS__)   __MACRO(  9, ##__VA_ARGS__)
#define REPEAT_MACRO11( __MACRO, ...)       REPEAT_MACRO10( __MACRO, ##__VA_ARGS__)   __MACRO( 10, ##__VA_ARGS__)
#define REPEAT_MACRO12( __MACRO, ...)       REPEAT_MACRO11( __MACRO, ##__VA_ARGS__)   __MACRO( 11, ##__VA_ARGS__)
#define REPEAT_MACRO13( __MACRO, ...)       REPEAT_MACRO12( __MACRO, ##__VA_ARGS__)   __MACRO( 12, ##__VA_ARGS__)
#define REPEAT_MACRO14( __MACRO, ...)       REPEAT_MACRO13( __MACRO, ##__VA_ARGS__)   __MACRO( 13, ##__VA_ARGS__)
#define REPEAT_MACRO15( __MACRO, ...)       REPEAT_MACRO14( __MACRO, ##__VA_ARGS__)   __MACRO( 14, ##__VA_ARGS__)
#define REPEAT_MACRO16( __MACRO, ...)       REPEAT_MACRO15( __MACRO, ##__VA_ARGS__)   __MACRO( 15, ##__VA_ARGS__)
#define REPEAT_MACRO17( __MACRO, ...)       REPEAT_MACRO16( __MACRO, ##__VA_ARGS__)   __MACRO( 16, ##__VA_ARGS__)
#define REPEAT_MACRO18( __MACRO, ...)       REPEAT_MACRO17( __MACRO, ##__VA_ARGS__)   __MACRO( 17, ##__VA_ARGS__)
#define REPEAT_MACRO19( __MACRO, ...)       REPEAT_MACRO18( __MACRO, ##__VA_ARGS__)   __MACRO( 18, ##__VA_ARGS__)
#define REPEAT_MACRO20( __MACRO, ...)       REPEAT_MACRO19( __MACRO, ##__VA_ARGS__)   __MACRO( 19, ##__VA_ARGS__)
#define REPEAT_MACRO21( __MACRO, ...)       REPEAT_MACRO20( __MACRO, ##__VA_ARGS__)   __MACRO( 20, ##__VA_ARGS__)
#define REPEAT_MACRO22( __MACRO, ...)       REPEAT_MACRO21( __MACRO, ##__VA_ARGS__)   __MACRO( 21, ##__VA_ARGS__)
#define REPEAT_MACRO23( __MACRO, ...)       REPEAT_MACRO22( __MACRO, ##__VA_ARGS__)   __MACRO( 22, ##__VA_ARGS__)
#define REPEAT_MACRO24( __MACRO, ...)       REPEAT_MACRO23( __MACRO, ##__VA_ARGS__)   __MACRO( 23, ##__VA_ARGS__)
#define REPEAT_MACRO25( __MACRO, ...)       REPEAT_MACRO24( __MACRO, ##__VA_ARGS__)   __MACRO( 24, ##__VA_ARGS__)
#define REPEAT_MACRO26( __MACRO, ...)       REPEAT_MACRO25( __MACRO, ##__VA_ARGS__)   __MACRO( 25, ##__VA_ARGS__)
#define REPEAT_MACRO27( __MACRO, ...)       REPEAT_MACRO26( __MACRO, ##__VA_ARGS__)   __MACRO( 26, ##__VA_ARGS__)
#define REPEAT_MACRO28( __MACRO, ...)       REPEAT_MACRO27( __MACRO, ##__VA_ARGS__)   __MACRO( 27, ##__VA_ARGS__)
#define REPEAT_MACRO29( __MACRO, ...)       REPEAT_MACRO28( __MACRO, ##__VA_ARGS__)   __MACRO( 28, ##__VA_ARGS__)
#define REPEAT_MACRO30( __MACRO, ...)       REPEAT_MACRO29( __MACRO, ##__VA_ARGS__)   __MACRO( 29, ##__VA_ARGS__)
#define REPEAT_MACRO31( __MACRO, ...)       REPEAT_MACRO30( __MACRO, ##__VA_ARGS__)   __MACRO( 30, ##__VA_ARGS__)
#define REPEAT_MACRO32( __MACRO, ...)       REPEAT_MACRO31( __MACRO, ##__VA_ARGS__)   __MACRO( 31, ##__VA_ARGS__)
#define REPEAT_MACRO33( __MACRO, ...)       REPEAT_MACRO32( __MACRO, ##__VA_ARGS__)   __MACRO( 32, ##__VA_ARGS__)
#define REPEAT_MACRO34( __MACRO, ...)       REPEAT_MACRO33( __MACRO, ##__VA_ARGS__)   __MACRO( 33, ##__VA_ARGS__)
#define REPEAT_MACRO35( __MACRO, ...)       REPEAT_MACRO34( __MACRO, ##__VA_ARGS__)   __MACRO( 34, ##__VA_ARGS__)
#define REPEAT_MACRO36( __MACRO, ...)       REPEAT_MACRO35( __MACRO, ##__VA_ARGS__)   __MACRO( 35, ##__VA_ARGS__)
#define REPEAT_MACRO37( __MACRO, ...)       REPEAT_MACRO36( __MACRO, ##__VA_ARGS__)   __MACRO( 36, ##__VA_ARGS__)
#define REPEAT_MACRO38( __MACRO, ...)       REPEAT_MACRO37( __MACRO, ##__VA_ARGS__)   __MACRO( 37, ##__VA_ARGS__)
#define REPEAT_MACRO39( __MACRO, ...)       REPEAT_MACRO38( __MACRO, ##__VA_ARGS__)   __MACRO( 38, ##__VA_ARGS__)
#define REPEAT_MACRO40( __MACRO, ...)       REPEAT_MACRO39( __MACRO, ##__VA_ARGS__)   __MACRO( 39, ##__VA_ARGS__)
#define REPEAT_MACRO41( __MACRO, ...)       REPEAT_MACRO40( __MACRO, ##__VA_ARGS__)   __MACRO( 40, ##__VA_ARGS__)
#define REPEAT_MACRO42( __MACRO, ...)       REPEAT_MACRO41( __MACRO, ##__VA_ARGS__)   __MACRO( 41, ##__VA_ARGS__)
#define REPEAT_MACRO43( __MACRO, ...)       REPEAT_MACRO42( __MACRO, ##__VA_ARGS__)   __MACRO( 42, ##__VA_ARGS__)
#define REPEAT_MACRO44( __MACRO, ...)       REPEAT_MACRO43( __MACRO, ##__VA_ARGS__)   __MACRO( 43, ##__VA_ARGS__)
#define REPEAT_MACRO45( __MACRO, ...)       REPEAT_MACRO44( __MACRO, ##__VA_ARGS__)   __MACRO( 44, ##__VA_ARGS__)
#define REPEAT_MACRO46( __MACRO, ...)       REPEAT_MACRO45( __MACRO, ##__VA_ARGS__)   __MACRO( 45, ##__VA_ARGS__)
#define REPEAT_MACRO47( __MACRO, ...)       REPEAT_MACRO46( __MACRO, ##__VA_ARGS__)   __MACRO( 46, ##__VA_ARGS__)
#define REPEAT_MACRO48( __MACRO, ...)       REPEAT_MACRO47( __MACRO, ##__VA_ARGS__)   __MACRO( 47, ##__VA_ARGS__)
#define REPEAT_MACRO49( __MACRO, ...)       REPEAT_MACRO48( __MACRO, ##__VA_ARGS__)   __MACRO( 48, ##__VA_ARGS__)
#define REPEAT_MACRO50( __MACRO, ...)       REPEAT_MACRO49( __MACRO, ##__VA_ARGS__)   __MACRO( 49, ##__VA_ARGS__)
#define REPEAT_MACRO51( __MACRO, ...)       REPEAT_MACRO50( __MACRO, ##__VA_ARGS__)   __MACRO( 50, ##__VA_ARGS__)
#define REPEAT_MACRO52( __MACRO, ...)       REPEAT_MACRO51( __MACRO, ##__VA_ARGS__)   __MACRO( 51, ##__VA_ARGS__)
#define REPEAT_MACRO53( __MACRO, ...)       REPEAT_MACRO52( __MACRO, ##__VA_ARGS__)   __MACRO( 52, ##__VA_ARGS__)
#define REPEAT_MACRO54( __MACRO, ...)       REPEAT_MACRO53( __MACRO, ##__VA_ARGS__)   __MACRO( 53, ##__VA_ARGS__)
#define REPEAT_MACRO55( __MACRO, ...)       REPEAT_MACRO54( __MACRO, ##__VA_ARGS__)   __MACRO( 54, ##__VA_ARGS__)
#define REPEAT_MACRO56( __MACRO, ...)       REPEAT_MACRO55( __MACRO, ##__VA_ARGS__)   __MACRO( 55, ##__VA_ARGS__)
#define REPEAT_MACRO57( __MACRO, ...)       REPEAT_MACRO56( __MACRO, ##__VA_ARGS__)   __MACRO( 56, ##__VA_ARGS__)
#define REPEAT_MACRO58( __MACRO, ...)       REPEAT_MACRO57( __MACRO, ##__VA_ARGS__)   __MACRO( 57, ##__VA_ARGS__)
#define REPEAT_MACRO59( __MACRO, ...)       REPEAT_MACRO58( __MACRO, ##__VA_ARGS__)   __MACRO( 58, ##__VA_ARGS__)
#define REPEAT_MACRO60( __MACRO, ...)       REPEAT_MACRO59( __MACRO, ##__VA_ARGS__)   __MACRO( 59, ##__VA_ARGS__)
#define REPEAT_MACRO61( __MACRO, ...)       REPEAT_MACRO60( __MACRO, ##__VA_ARGS__)   __MACRO( 60, ##__VA_ARGS__)
#define REPEAT_MACRO62( __MACRO, ...)       REPEAT_MACRO61( __MACRO, ##__VA_ARGS__)   __MACRO( 61, ##__VA_ARGS__)
#define REPEAT_MACRO63( __MACRO, ...)       REPEAT_MACRO62( __MACRO, ##__VA_ARGS__)   __MACRO( 62, ##__VA_ARGS__)
#define REPEAT_MACRO64( __MACRO, ...)       REPEAT_MACRO63( __MACRO, ##__VA_ARGS__)   __MACRO( 63, ##__VA_ARGS__)
#define REPEAT_MACRO65( __MACRO, ...)       REPEAT_MACRO64( __MACRO, ##__VA_ARGS__)   __MACRO( 64, ##__VA_ARGS__)
#define REPEAT_MACRO66( __MACRO, ...)       REPEAT_MACRO65( __MACRO, ##__VA_ARGS__)   __MACRO( 65, ##__VA_ARGS__)
#define REPEAT_MACRO67( __MACRO, ...)       REPEAT_MACRO66( __MACRO, ##__VA_ARGS__)   __MACRO( 66, ##__VA_ARGS__)
#define REPEAT_MACRO68( __MACRO, ...)       REPEAT_MACRO67( __MACRO, ##__VA_ARGS__)   __MACRO( 67, ##__VA_ARGS__)
#define REPEAT_MACRO69( __MACRO, ...)       REPEAT_MACRO68( __MACRO, ##__VA_ARGS__)   __MACRO( 68, ##__VA_ARGS__)
#define REPEAT_MACRO70( __MACRO, ...)       REPEAT_MACRO69( __MACRO, ##__VA_ARGS__)   __MACRO( 69, ##__VA_ARGS__)
#define REPEAT_MACRO71( __MACRO, ...)       REPEAT_MACRO70( __MACRO, ##__VA_ARGS__)   __MACRO( 70, ##__VA_ARGS__)
#define REPEAT_MACRO72( __MACRO, ...)       REPEAT_MACRO71( __MACRO, ##__VA_ARGS__)   __MACRO( 71, ##__VA_ARGS__)
#define REPEAT_MACRO73( __MACRO, ...)       REPEAT_MACRO72( __MACRO, ##__VA_ARGS__)   __MACRO( 72, ##__VA_ARGS__)
#define REPEAT_MACRO74( __MACRO, ...)       REPEAT_MACRO73( __MACRO, ##__VA_ARGS__)   __MACRO( 73, ##__VA_ARGS__)
#define REPEAT_MACRO75( __MACRO, ...)       REPEAT_MACRO74( __MACRO, ##__VA_ARGS__)   __MACRO( 74, ##__VA_ARGS__)
#define REPEAT_MACRO76( __MACRO, ...)       REPEAT_MACRO75( __MACRO, ##__VA_ARGS__)   __MACRO( 75, ##__VA_ARGS__)
#define REPEAT_MACRO77( __MACRO, ...)       REPEAT_MACRO76( __MACRO, ##__VA_ARGS__)   __MACRO( 76, ##__VA_ARGS__)
#define REPEAT_MACRO78( __MACRO, ...)       REPEAT_MACRO77( __MACRO, ##__VA_ARGS__)   __MACRO( 77, ##__VA_ARGS__)
#define REPEAT_MACRO79( __MACRO, ...)       REPEAT_MACRO78( __MACRO, ##__VA_ARGS__)   __MACRO( 78, ##__VA_ARGS__)
#define REPEAT_MACRO80( __MACRO, ...)       REPEAT_MACRO79( __MACRO, ##__VA_ARGS__)   __MACRO( 79, ##__VA_ARGS__)
#define REPEAT_MACRO81( __MACRO, ...)       REPEAT_MACRO80( __MACRO, ##__VA_ARGS__)   __MACRO( 80, ##__VA_ARGS__)
#define REPEAT_MACRO82( __MACRO, ...)       REPEAT_MACRO81( __MACRO, ##__VA_ARGS__)   __MACRO( 81, ##__VA_ARGS__)
#define REPEAT_MACRO83( __MACRO, ...)       REPEAT_MACRO82( __MACRO, ##__VA_ARGS__)   __MACRO( 82, ##__VA_ARGS__)
#define REPEAT_MACRO84( __MACRO, ...)       REPEAT_MACRO83( __MACRO, ##__VA_ARGS__)   __MACRO( 83, ##__VA_ARGS__)
#define REPEAT_MACRO85( __MACRO, ...)       REPEAT_MACRO84( __MACRO, ##__VA_ARGS__)   __MACRO( 84, ##__VA_ARGS__)
#define REPEAT_MACRO86( __MACRO, ...)       REPEAT_MACRO85( __MACRO, ##__VA_ARGS__)   __MACRO( 85, ##__VA_ARGS__)
#define REPEAT_MACRO87( __MACRO, ...)       REPEAT_MACRO86( __MACRO, ##__VA_ARGS__)   __MACRO( 86, ##__VA_ARGS__)
#define REPEAT_MACRO88( __MACRO, ...)       REPEAT_MACRO87( __MACRO, ##__VA_ARGS__)   __MACRO( 87, ##__VA_ARGS__)
#define REPEAT_MACRO89( __MACRO, ...)       REPEAT_MACRO88( __MACRO, ##__VA_ARGS__)   __MACRO( 88, ##__VA_ARGS__)
#define REPEAT_MACRO90( __MACRO, ...)       REPEAT_MACRO89( __MACRO, ##__VA_ARGS__)   __MACRO( 89, ##__VA_ARGS__)
#define REPEAT_MACRO91( __MACRO, ...)       REPEAT_MACRO90( __MACRO, ##__VA_ARGS__)   __MACRO( 90, ##__VA_ARGS__)
#define REPEAT_MACRO92( __MACRO, ...)       REPEAT_MACRO91( __MACRO, ##__VA_ARGS__)   __MACRO( 91, ##__VA_ARGS__)
#define REPEAT_MACRO93( __MACRO, ...)       REPEAT_MACRO92( __MACRO, ##__VA_ARGS__)   __MACRO( 92, ##__VA_ARGS__)
#define REPEAT_MACRO94( __MACRO, ...)       REPEAT_MACRO93( __MACRO, ##__VA_ARGS__)   __MACRO( 93, ##__VA_ARGS__)
#define REPEAT_MACRO95( __MACRO, ...)       REPEAT_MACRO94( __MACRO, ##__VA_ARGS__)   __MACRO( 94, ##__VA_ARGS__)
#define REPEAT_MACRO96( __MACRO, ...)       REPEAT_MACRO95( __MACRO, ##__VA_ARGS__)   __MACRO( 95, ##__VA_ARGS__)
#define REPEAT_MACRO97( __MACRO, ...)       REPEAT_MACRO96( __MACRO, ##__VA_ARGS__)   __MACRO( 96, ##__VA_ARGS__)
#define REPEAT_MACRO98( __MACRO, ...)       REPEAT_MACRO97( __MACRO, ##__VA_ARGS__)   __MACRO( 97, ##__VA_ARGS__)
#define REPEAT_MACRO99( __MACRO, ...)       REPEAT_MACRO98( __MACRO, ##__VA_ARGS__)   __MACRO( 98, ##__VA_ARGS__)
#define REPEAT_MACRO100(__MACRO, ...)       REPEAT_MACRO99( __MACRO, ##__VA_ARGS__)   __MACRO( 99, ##__VA_ARGS__)
#define REPEAT_MACRO101(__MACRO, ...)       REPEAT_MACRO100(__MACRO, ##__VA_ARGS__)   __MACRO(100, ##__VA_ARGS__)
#define REPEAT_MACRO102(__MACRO, ...)       REPEAT_MACRO101(__MACRO, ##__VA_ARGS__)   __MACRO(101, ##__VA_ARGS__)
#define REPEAT_MACRO103(__MACRO, ...)       REPEAT_MACRO102(__MACRO, ##__VA_ARGS__)   __MACRO(102, ##__VA_ARGS__)
#define REPEAT_MACRO104(__MACRO, ...)       REPEAT_MACRO103(__MACRO, ##__VA_ARGS__)   __MACRO(103, ##__VA_ARGS__)
#define REPEAT_MACRO105(__MACRO, ...)       REPEAT_MACRO104(__MACRO, ##__VA_ARGS__)   __MACRO(104, ##__VA_ARGS__)
#define REPEAT_MACRO106(__MACRO, ...)       REPEAT_MACRO105(__MACRO, ##__VA_ARGS__)   __MACRO(105, ##__VA_ARGS__)
#define REPEAT_MACRO107(__MACRO, ...)       REPEAT_MACRO106(__MACRO, ##__VA_ARGS__)   __MACRO(106, ##__VA_ARGS__)
#define REPEAT_MACRO108(__MACRO, ...)       REPEAT_MACRO107(__MACRO, ##__VA_ARGS__)   __MACRO(107, ##__VA_ARGS__)
#define REPEAT_MACRO109(__MACRO, ...)       REPEAT_MACRO108(__MACRO, ##__VA_ARGS__)   __MACRO(108, ##__VA_ARGS__)
#define REPEAT_MACRO110(__MACRO, ...)       REPEAT_MACRO109(__MACRO, ##__VA_ARGS__)   __MACRO(109, ##__VA_ARGS__)
#define REPEAT_MACRO111(__MACRO, ...)       REPEAT_MACRO110(__MACRO, ##__VA_ARGS__)   __MACRO(110, ##__VA_ARGS__)
#define REPEAT_MACRO112(__MACRO, ...)       REPEAT_MACRO111(__MACRO, ##__VA_ARGS__)   __MACRO(111, ##__VA_ARGS__)
#define REPEAT_MACRO113(__MACRO, ...)       REPEAT_MACRO112(__MACRO, ##__VA_ARGS__)   __MACRO(112, ##__VA_ARGS__)
#define REPEAT_MACRO114(__MACRO, ...)       REPEAT_MACRO113(__MACRO, ##__VA_ARGS__)   __MACRO(113, ##__VA_ARGS__)
#define REPEAT_MACRO115(__MACRO, ...)       REPEAT_MACRO114(__MACRO, ##__VA_ARGS__)   __MACRO(114, ##__VA_ARGS__)
#define REPEAT_MACRO116(__MACRO, ...)       REPEAT_MACRO115(__MACRO, ##__VA_ARGS__)   __MACRO(115, ##__VA_ARGS__)
#define REPEAT_MACRO117(__MACRO, ...)       REPEAT_MACRO116(__MACRO, ##__VA_ARGS__)   __MACRO(116, ##__VA_ARGS__)
#define REPEAT_MACRO118(__MACRO, ...)       REPEAT_MACRO117(__MACRO, ##__VA_ARGS__)   __MACRO(117, ##__VA_ARGS__)
#define REPEAT_MACRO119(__MACRO, ...)       REPEAT_MACRO118(__MACRO, ##__VA_ARGS__)   __MACRO(118, ##__VA_ARGS__)
#define REPEAT_MACRO120(__MACRO, ...)       REPEAT_MACRO119(__MACRO, ##__VA_ARGS__)   __MACRO(119, ##__VA_ARGS__)
#define REPEAT_MACRO121(__MACRO, ...)       REPEAT_MACRO120(__MACRO, ##__VA_ARGS__)   __MACRO(120, ##__VA_ARGS__)
#define REPEAT_MACRO122(__MACRO, ...)       REPEAT_MACRO121(__MACRO, ##__VA_ARGS__)   __MACRO(121, ##__VA_ARGS__)
#define REPEAT_MACRO123(__MACRO, ...)       REPEAT_MACRO122(__MACRO, ##__VA_ARGS__)   __MACRO(122, ##__VA_ARGS__)
#define REPEAT_MACRO124(__MACRO, ...)       REPEAT_MACRO123(__MACRO, ##__VA_ARGS__)   __MACRO(123, ##__VA_ARGS__)
#define REPEAT_MACRO125(__MACRO, ...)       REPEAT_MACRO124(__MACRO, ##__VA_ARGS__)   __MACRO(124, ##__VA_ARGS__)
#define REPEAT_MACRO126(__MACRO, ...)       REPEAT_MACRO125(__MACRO, ##__VA_ARGS__)   __MACRO(125, ##__VA_ARGS__)
#define REPEAT_MACRO127(__MACRO, ...)       REPEAT_MACRO126(__MACRO, ##__VA_ARGS__)   __MACRO(126, ##__VA_ARGS__)
#define REPEAT_MACRO128(__MACRO, ...)       REPEAT_MACRO127(__MACRO, ##__VA_ARGS__)   __MACRO(127, ##__VA_ARGS__)
#define REPEAT_MACRO129(__MACRO, ...)       REPEAT_MACRO128(__MACRO, ##__VA_ARGS__)   __MACRO(128, ##__VA_ARGS__)
#define REPEAT_MACRO130(__MACRO, ...)       REPEAT_MACRO129(__MACRO, ##__VA_ARGS__)   __MACRO(129, ##__VA_ARGS__)
#define REPEAT_MACRO131(__MACRO, ...)       REPEAT_MACRO130(__MACRO, ##__VA_ARGS__)   __MACRO(130, ##__VA_ARGS__)
#define REPEAT_MACRO132(__MACRO, ...)       REPEAT_MACRO131(__MACRO, ##__VA_ARGS__)   __MACRO(131, ##__VA_ARGS__)
#define REPEAT_MACRO133(__MACRO, ...)       REPEAT_MACRO132(__MACRO, ##__VA_ARGS__)   __MACRO(132, ##__VA_ARGS__)
#define REPEAT_MACRO134(__MACRO, ...)       REPEAT_MACRO133(__MACRO, ##__VA_ARGS__)   __MACRO(133, ##__VA_ARGS__)
#define REPEAT_MACRO135(__MACRO, ...)       REPEAT_MACRO134(__MACRO, ##__VA_ARGS__)   __MACRO(134, ##__VA_ARGS__)
#define REPEAT_MACRO136(__MACRO, ...)       REPEAT_MACRO135(__MACRO, ##__VA_ARGS__)   __MACRO(135, ##__VA_ARGS__)
#define REPEAT_MACRO137(__MACRO, ...)       REPEAT_MACRO136(__MACRO, ##__VA_ARGS__)   __MACRO(136, ##__VA_ARGS__)
#define REPEAT_MACRO138(__MACRO, ...)       REPEAT_MACRO137(__MACRO, ##__VA_ARGS__)   __MACRO(137, ##__VA_ARGS__)
#define REPEAT_MACRO139(__MACRO, ...)       REPEAT_MACRO138(__MACRO, ##__VA_ARGS__)   __MACRO(138, ##__VA_ARGS__)
#define REPEAT_MACRO140(__MACRO, ...)       REPEAT_MACRO139(__MACRO, ##__VA_ARGS__)   __MACRO(139, ##__VA_ARGS__)
#define REPEAT_MACRO141(__MACRO, ...)       REPEAT_MACRO140(__MACRO, ##__VA_ARGS__)   __MACRO(140, ##__VA_ARGS__)
#define REPEAT_MACRO142(__MACRO, ...)       REPEAT_MACRO141(__MACRO, ##__VA_ARGS__)   __MACRO(141, ##__VA_ARGS__)
#define REPEAT_MACRO143(__MACRO, ...)       REPEAT_MACRO142(__MACRO, ##__VA_ARGS__)   __MACRO(142, ##__VA_ARGS__)
#define REPEAT_MACRO144(__MACRO, ...)       REPEAT_MACRO143(__MACRO, ##__VA_ARGS__)   __MACRO(143, ##__VA_ARGS__)
#define REPEAT_MACRO145(__MACRO, ...)       REPEAT_MACRO144(__MACRO, ##__VA_ARGS__)   __MACRO(144, ##__VA_ARGS__)
#define REPEAT_MACRO146(__MACRO, ...)       REPEAT_MACRO145(__MACRO, ##__VA_ARGS__)   __MACRO(145, ##__VA_ARGS__)
#define REPEAT_MACRO147(__MACRO, ...)       REPEAT_MACRO146(__MACRO, ##__VA_ARGS__)   __MACRO(146, ##__VA_ARGS__)
#define REPEAT_MACRO148(__MACRO, ...)       REPEAT_MACRO147(__MACRO, ##__VA_ARGS__)   __MACRO(147, ##__VA_ARGS__)
#define REPEAT_MACRO149(__MACRO, ...)       REPEAT_MACRO148(__MACRO, ##__VA_ARGS__)   __MACRO(148, ##__VA_ARGS__)
#define REPEAT_MACRO150(__MACRO, ...)       REPEAT_MACRO149(__MACRO, ##__VA_ARGS__)   __MACRO(149, ##__VA_ARGS__)
#define REPEAT_MACRO151(__MACRO, ...)       REPEAT_MACRO150(__MACRO, ##__VA_ARGS__)   __MACRO(150, ##__VA_ARGS__)
#define REPEAT_MACRO152(__MACRO, ...)       REPEAT_MACRO151(__MACRO, ##__VA_ARGS__)   __MACRO(151, ##__VA_ARGS__)
#define REPEAT_MACRO153(__MACRO, ...)       REPEAT_MACRO152(__MACRO, ##__VA_ARGS__)   __MACRO(152, ##__VA_ARGS__)
#define REPEAT_MACRO154(__MACRO, ...)       REPEAT_MACRO153(__MACRO, ##__VA_ARGS__)   __MACRO(153, ##__VA_ARGS__)
#define REPEAT_MACRO155(__MACRO, ...)       REPEAT_MACRO154(__MACRO, ##__VA_ARGS__)   __MACRO(154, ##__VA_ARGS__)
#define REPEAT_MACRO156(__MACRO, ...)       REPEAT_MACRO155(__MACRO, ##__VA_ARGS__)   __MACRO(155, ##__VA_ARGS__)
#define REPEAT_MACRO157(__MACRO, ...)       REPEAT_MACRO156(__MACRO, ##__VA_ARGS__)   __MACRO(156, ##__VA_ARGS__)
#define REPEAT_MACRO158(__MACRO, ...)       REPEAT_MACRO157(__MACRO, ##__VA_ARGS__)   __MACRO(157, ##__VA_ARGS__)
#define REPEAT_MACRO159(__MACRO, ...)       REPEAT_MACRO158(__MACRO, ##__VA_ARGS__)   __MACRO(158, ##__VA_ARGS__)
#define REPEAT_MACRO160(__MACRO, ...)       REPEAT_MACRO159(__MACRO, ##__VA_ARGS__)   __MACRO(159, ##__VA_ARGS__)
#define REPEAT_MACRO161(__MACRO, ...)       REPEAT_MACRO160(__MACRO, ##__VA_ARGS__)   __MACRO(160, ##__VA_ARGS__)
#define REPEAT_MACRO162(__MACRO, ...)       REPEAT_MACRO161(__MACRO, ##__VA_ARGS__)   __MACRO(161, ##__VA_ARGS__)
#define REPEAT_MACRO163(__MACRO, ...)       REPEAT_MACRO162(__MACRO, ##__VA_ARGS__)   __MACRO(162, ##__VA_ARGS__)
#define REPEAT_MACRO164(__MACRO, ...)       REPEAT_MACRO163(__MACRO, ##__VA_ARGS__)   __MACRO(163, ##__VA_ARGS__)
#define REPEAT_MACRO165(__MACRO, ...)       REPEAT_MACRO164(__MACRO, ##__VA_ARGS__)   __MACRO(164, ##__VA_ARGS__)
#define REPEAT_MACRO166(__MACRO, ...)       REPEAT_MACRO165(__MACRO, ##__VA_ARGS__)   __MACRO(165, ##__VA_ARGS__)
#define REPEAT_MACRO167(__MACRO, ...)       REPEAT_MACRO166(__MACRO, ##__VA_ARGS__)   __MACRO(166, ##__VA_ARGS__)
#define REPEAT_MACRO168(__MACRO, ...)       REPEAT_MACRO167(__MACRO, ##__VA_ARGS__)   __MACRO(167, ##__VA_ARGS__)
#define REPEAT_MACRO169(__MACRO, ...)       REPEAT_MACRO168(__MACRO, ##__VA_ARGS__)   __MACRO(168, ##__VA_ARGS__)
#define REPEAT_MACRO170(__MACRO, ...)       REPEAT_MACRO169(__MACRO, ##__VA_ARGS__)   __MACRO(169, ##__VA_ARGS__)
#define REPEAT_MACRO171(__MACRO, ...)       REPEAT_MACRO170(__MACRO, ##__VA_ARGS__)   __MACRO(170, ##__VA_ARGS__)
#define REPEAT_MACRO172(__MACRO, ...)       REPEAT_MACRO171(__MACRO, ##__VA_ARGS__)   __MACRO(171, ##__VA_ARGS__)
#define REPEAT_MACRO173(__MACRO, ...)       REPEAT_MACRO172(__MACRO, ##__VA_ARGS__)   __MACRO(172, ##__VA_ARGS__)
#define REPEAT_MACRO174(__MACRO, ...)       REPEAT_MACRO173(__MACRO, ##__VA_ARGS__)   __MACRO(173, ##__VA_ARGS__)
#define REPEAT_MACRO175(__MACRO, ...)       REPEAT_MACRO174(__MACRO, ##__VA_ARGS__)   __MACRO(174, ##__VA_ARGS__)
#define REPEAT_MACRO176(__MACRO, ...)       REPEAT_MACRO175(__MACRO, ##__VA_ARGS__)   __MACRO(175, ##__VA_ARGS__)
#define REPEAT_MACRO177(__MACRO, ...)       REPEAT_MACRO176(__MACRO, ##__VA_ARGS__)   __MACRO(176, ##__VA_ARGS__)
#define REPEAT_MACRO178(__MACRO, ...)       REPEAT_MACRO177(__MACRO, ##__VA_ARGS__)   __MACRO(177, ##__VA_ARGS__)
#define REPEAT_MACRO179(__MACRO, ...)       REPEAT_MACRO178(__MACRO, ##__VA_ARGS__)   __MACRO(178, ##__VA_ARGS__)
#define REPEAT_MACRO180(__MACRO, ...)       REPEAT_MACRO179(__MACRO, ##__VA_ARGS__)   __MACRO(179, ##__VA_ARGS__)
#define REPEAT_MACRO181(__MACRO, ...)       REPEAT_MACRO180(__MACRO, ##__VA_ARGS__)   __MACRO(180, ##__VA_ARGS__)
#define REPEAT_MACRO182(__MACRO, ...)       REPEAT_MACRO181(__MACRO, ##__VA_ARGS__)   __MACRO(181, ##__VA_ARGS__)
#define REPEAT_MACRO183(__MACRO, ...)       REPEAT_MACRO182(__MACRO, ##__VA_ARGS__)   __MACRO(182, ##__VA_ARGS__)
#define REPEAT_MACRO184(__MACRO, ...)       REPEAT_MACRO183(__MACRO, ##__VA_ARGS__)   __MACRO(183, ##__VA_ARGS__)
#define REPEAT_MACRO185(__MACRO, ...)       REPEAT_MACRO184(__MACRO, ##__VA_ARGS__)   __MACRO(184, ##__VA_ARGS__)
#define REPEAT_MACRO186(__MACRO, ...)       REPEAT_MACRO185(__MACRO, ##__VA_ARGS__)   __MACRO(185, ##__VA_ARGS__)
#define REPEAT_MACRO187(__MACRO, ...)       REPEAT_MACRO186(__MACRO, ##__VA_ARGS__)   __MACRO(186, ##__VA_ARGS__)
#define REPEAT_MACRO188(__MACRO, ...)       REPEAT_MACRO187(__MACRO, ##__VA_ARGS__)   __MACRO(187, ##__VA_ARGS__)
#define REPEAT_MACRO189(__MACRO, ...)       REPEAT_MACRO188(__MACRO, ##__VA_ARGS__)   __MACRO(188, ##__VA_ARGS__)
#define REPEAT_MACRO190(__MACRO, ...)       REPEAT_MACRO189(__MACRO, ##__VA_ARGS__)   __MACRO(189, ##__VA_ARGS__)
#define REPEAT_MACRO191(__MACRO, ...)       REPEAT_MACRO190(__MACRO, ##__VA_ARGS__)   __MACRO(190, ##__VA_ARGS__)
#define REPEAT_MACRO192(__MACRO, ...)       REPEAT_MACRO191(__MACRO, ##__VA_ARGS__)   __MACRO(191, ##__VA_ARGS__)
#define REPEAT_MACRO193(__MACRO, ...)       REPEAT_MACRO192(__MACRO, ##__VA_ARGS__)   __MACRO(192, ##__VA_ARGS__)
#define REPEAT_MACRO194(__MACRO, ...)       REPEAT_MACRO193(__MACRO, ##__VA_ARGS__)   __MACRO(193, ##__VA_ARGS__)
#define REPEAT_MACRO195(__MACRO, ...)       REPEAT_MACRO194(__MACRO, ##__VA_ARGS__)   __MACRO(194, ##__VA_ARGS__)
#define REPEAT_MACRO196(__MACRO, ...)       REPEAT_MACRO195(__MACRO, ##__VA_ARGS__)   __MACRO(195, ##__VA_ARGS__)
#define REPEAT_MACRO197(__MACRO, ...)       REPEAT_MACRO196(__MACRO, ##__VA_ARGS__)   __MACRO(196, ##__VA_ARGS__)
#define REPEAT_MACRO198(__MACRO, ...)       REPEAT_MACRO197(__MACRO, ##__VA_ARGS__)   __MACRO(197, ##__VA_ARGS__)
#define REPEAT_MACRO199(__MACRO, ...)       REPEAT_MACRO198(__MACRO, ##__VA_ARGS__)   __MACRO(198, ##__VA_ARGS__)
#define REPEAT_MACRO200(__MACRO, ...)       REPEAT_MACRO199(__MACRO, ##__VA_ARGS__)   __MACRO(199, ##__VA_ARGS__)
#define REPEAT_MACRO201(__MACRO, ...)       REPEAT_MACRO200(__MACRO, ##__VA_ARGS__)   __MACRO(200, ##__VA_ARGS__)
#define REPEAT_MACRO202(__MACRO, ...)       REPEAT_MACRO201(__MACRO, ##__VA_ARGS__)   __MACRO(201, ##__VA_ARGS__)
#define REPEAT_MACRO203(__MACRO, ...)       REPEAT_MACRO202(__MACRO, ##__VA_ARGS__)   __MACRO(202, ##__VA_ARGS__)
#define REPEAT_MACRO204(__MACRO, ...)       REPEAT_MACRO203(__MACRO, ##__VA_ARGS__)   __MACRO(203, ##__VA_ARGS__)
#define REPEAT_MACRO205(__MACRO, ...)       REPEAT_MACRO204(__MACRO, ##__VA_ARGS__)   __MACRO(204, ##__VA_ARGS__)
#define REPEAT_MACRO206(__MACRO, ...)       REPEAT_MACRO205(__MACRO, ##__VA_ARGS__)   __MACRO(205, ##__VA_ARGS__)
#define REPEAT_MACRO207(__MACRO, ...)       REPEAT_MACRO206(__MACRO, ##__VA_ARGS__)   __MACRO(206, ##__VA_ARGS__)
#define REPEAT_MACRO208(__MACRO, ...)       REPEAT_MACRO207(__MACRO, ##__VA_ARGS__)   __MACRO(207, ##__VA_ARGS__)
#define REPEAT_MACRO209(__MACRO, ...)       REPEAT_MACRO208(__MACRO, ##__VA_ARGS__)   __MACRO(208, ##__VA_ARGS__)
#define REPEAT_MACRO210(__MACRO, ...)       REPEAT_MACRO209(__MACRO, ##__VA_ARGS__)   __MACRO(209, ##__VA_ARGS__)
#define REPEAT_MACRO211(__MACRO, ...)       REPEAT_MACRO210(__MACRO, ##__VA_ARGS__)   __MACRO(210, ##__VA_ARGS__)
#define REPEAT_MACRO212(__MACRO, ...)       REPEAT_MACRO211(__MACRO, ##__VA_ARGS__)   __MACRO(211, ##__VA_ARGS__)
#define REPEAT_MACRO213(__MACRO, ...)       REPEAT_MACRO212(__MACRO, ##__VA_ARGS__)   __MACRO(212, ##__VA_ARGS__)
#define REPEAT_MACRO214(__MACRO, ...)       REPEAT_MACRO213(__MACRO, ##__VA_ARGS__)   __MACRO(213, ##__VA_ARGS__)
#define REPEAT_MACRO215(__MACRO, ...)       REPEAT_MACRO214(__MACRO, ##__VA_ARGS__)   __MACRO(214, ##__VA_ARGS__)
#define REPEAT_MACRO216(__MACRO, ...)       REPEAT_MACRO215(__MACRO, ##__VA_ARGS__)   __MACRO(215, ##__VA_ARGS__)
#define REPEAT_MACRO217(__MACRO, ...)       REPEAT_MACRO216(__MACRO, ##__VA_ARGS__)   __MACRO(216, ##__VA_ARGS__)
#define REPEAT_MACRO218(__MACRO, ...)       REPEAT_MACRO217(__MACRO, ##__VA_ARGS__)   __MACRO(217, ##__VA_ARGS__)
#define REPEAT_MACRO219(__MACRO, ...)       REPEAT_MACRO218(__MACRO, ##__VA_ARGS__)   __MACRO(218, ##__VA_ARGS__)
#define REPEAT_MACRO220(__MACRO, ...)       REPEAT_MACRO219(__MACRO, ##__VA_ARGS__)   __MACRO(219, ##__VA_ARGS__)
#define REPEAT_MACRO221(__MACRO, ...)       REPEAT_MACRO220(__MACRO, ##__VA_ARGS__)   __MACRO(220, ##__VA_ARGS__)
#define REPEAT_MACRO222(__MACRO, ...)       REPEAT_MACRO221(__MACRO, ##__VA_ARGS__)   __MACRO(221, ##__VA_ARGS__)
#define REPEAT_MACRO223(__MACRO, ...)       REPEAT_MACRO222(__MACRO, ##__VA_ARGS__)   __MACRO(222, ##__VA_ARGS__)
#define REPEAT_MACRO224(__MACRO, ...)       REPEAT_MACRO223(__MACRO, ##__VA_ARGS__)   __MACRO(223, ##__VA_ARGS__)
#define REPEAT_MACRO225(__MACRO, ...)       REPEAT_MACRO224(__MACRO, ##__VA_ARGS__)   __MACRO(224, ##__VA_ARGS__)
#define REPEAT_MACRO226(__MACRO, ...)       REPEAT_MACRO225(__MACRO, ##__VA_ARGS__)   __MACRO(225, ##__VA_ARGS__)
#define REPEAT_MACRO227(__MACRO, ...)       REPEAT_MACRO226(__MACRO, ##__VA_ARGS__)   __MACRO(226, ##__VA_ARGS__)
#define REPEAT_MACRO228(__MACRO, ...)       REPEAT_MACRO227(__MACRO, ##__VA_ARGS__)   __MACRO(227, ##__VA_ARGS__)
#define REPEAT_MACRO229(__MACRO, ...)       REPEAT_MACRO228(__MACRO, ##__VA_ARGS__)   __MACRO(228, ##__VA_ARGS__)
#define REPEAT_MACRO230(__MACRO, ...)       REPEAT_MACRO229(__MACRO, ##__VA_ARGS__)   __MACRO(229, ##__VA_ARGS__)
#define REPEAT_MACRO231(__MACRO, ...)       REPEAT_MACRO230(__MACRO, ##__VA_ARGS__)   __MACRO(230, ##__VA_ARGS__)
#define REPEAT_MACRO232(__MACRO, ...)       REPEAT_MACRO231(__MACRO, ##__VA_ARGS__)   __MACRO(231, ##__VA_ARGS__)
#define REPEAT_MACRO233(__MACRO, ...)       REPEAT_MACRO232(__MACRO, ##__VA_ARGS__)   __MACRO(232, ##__VA_ARGS__)
#define REPEAT_MACRO234(__MACRO, ...)       REPEAT_MACRO233(__MACRO, ##__VA_ARGS__)   __MACRO(233, ##__VA_ARGS__)
#define REPEAT_MACRO235(__MACRO, ...)       REPEAT_MACRO234(__MACRO, ##__VA_ARGS__)   __MACRO(234, ##__VA_ARGS__)
#define REPEAT_MACRO236(__MACRO, ...)       REPEAT_MACRO235(__MACRO, ##__VA_ARGS__)   __MACRO(235, ##__VA_ARGS__)
#define REPEAT_MACRO237(__MACRO, ...)       REPEAT_MACRO236(__MACRO, ##__VA_ARGS__)   __MACRO(236, ##__VA_ARGS__)
#define REPEAT_MACRO238(__MACRO, ...)       REPEAT_MACRO237(__MACRO, ##__VA_ARGS__)   __MACRO(237, ##__VA_ARGS__)
#define REPEAT_MACRO239(__MACRO, ...)       REPEAT_MACRO238(__MACRO, ##__VA_ARGS__)   __MACRO(238, ##__VA_ARGS__)
#define REPEAT_MACRO240(__MACRO, ...)       REPEAT_MACRO239(__MACRO, ##__VA_ARGS__)   __MACRO(239, ##__VA_ARGS__)
#define REPEAT_MACRO241(__MACRO, ...)       REPEAT_MACRO240(__MACRO, ##__VA_ARGS__)   __MACRO(240, ##__VA_ARGS__)
#define REPEAT_MACRO242(__MACRO, ...)       REPEAT_MACRO241(__MACRO, ##__VA_ARGS__)   __MACRO(241, ##__VA_ARGS__)
#define REPEAT_MACRO243(__MACRO, ...)       REPEAT_MACRO242(__MACRO, ##__VA_ARGS__)   __MACRO(242, ##__VA_ARGS__)
#define REPEAT_MACRO244(__MACRO, ...)       REPEAT_MACRO243(__MACRO, ##__VA_ARGS__)   __MACRO(243, ##__VA_ARGS__)
#define REPEAT_MACRO245(__MACRO, ...)       REPEAT_MACRO244(__MACRO, ##__VA_ARGS__)   __MACRO(244, ##__VA_ARGS__)
#define REPEAT_MACRO246(__MACRO, ...)       REPEAT_MACRO245(__MACRO, ##__VA_ARGS__)   __MACRO(245, ##__VA_ARGS__)
#define REPEAT_MACRO247(__MACRO, ...)       REPEAT_MACRO246(__MACRO, ##__VA_ARGS__)   __MACRO(246, ##__VA_ARGS__)
#define REPEAT_MACRO248(__MACRO, ...)       REPEAT_MACRO247(__MACRO, ##__VA_ARGS__)   __MACRO(247, ##__VA_ARGS__)
#define REPEAT_MACRO249(__MACRO, ...)       REPEAT_MACRO248(__MACRO, ##__VA_ARGS__)   __MACRO(248, ##__VA_ARGS__)
#define REPEAT_MACRO250(__MACRO, ...)       REPEAT_MACRO249(__MACRO, ##__VA_ARGS__)   __MACRO(249, ##__VA_ARGS__)
#define REPEAT_MACRO251(__MACRO, ...)       REPEAT_MACRO250(__MACRO, ##__VA_ARGS__)   __MACRO(250, ##__VA_ARGS__)
#define REPEAT_MACRO252(__MACRO, ...)       REPEAT_MACRO251(__MACRO, ##__VA_ARGS__)   __MACRO(251, ##__VA_ARGS__)
#define REPEAT_MACRO253(__MACRO, ...)       REPEAT_MACRO252(__MACRO, ##__VA_ARGS__)   __MACRO(252, ##__VA_ARGS__)
#define REPEAT_MACRO254(__MACRO, ...)       REPEAT_MACRO253(__MACRO, ##__VA_ARGS__)   __MACRO(253, ##__VA_ARGS__)
#define REPEAT_MACRO255(__MACRO, ...)       REPEAT_MACRO254(__MACRO, ##__VA_ARGS__)   __MACRO(254, ##__VA_ARGS__)
#define REPEAT_MACRO256(__MACRO, ...)       REPEAT_MACRO255(__MACRO, ##__VA_ARGS__)   __MACRO(255, ##__VA_ARGS__)

#endif

#ifdef __cplusplus
}
#endif

#endif  // _REPEAT_MACRO_H_
